currying pure functions